package pers.cj.pdos.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class DateUtils {
    public static final String YYYYMMDD="yyyyMMdd";
    public static final String YYYYMMDDHHMMSSSS="yyyyMMddhhmmssSS";
    public static final String YYYY_MM_DD="yyyy-MM-dd";
    public static final String YYYY_MM="yyyy-MM";
    public static final String YYYYMMDD_HHMMSS="yyyy-MM-dd hh:mm:ss";
    public static final String YYYY="yyyy";

    public static String getDate(Date date, String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date);
    }

    public static Date genDate(String date, String format){
        try {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.parse(date);
        } catch (ParseException e) {
            return null;
        }
    }


    /**
     * 获取number个月后的时间
     * @param inputDate
     * @param number
     * @return
     */
    public static String  getAfterMonth(String inputDate,int number) {
        Calendar c = Calendar.getInstance();//获得一个日历的实例
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try{
            date = sdf.parse(inputDate);//初始日期
        }catch(Exception e){

        }
        return getAfterMonth(date, number);
    }

    /**
     * 获取number个月后的时间
     * @param date
     * @param number
     * @return
     */
    public static String  getAfterMonth(Date date,int number) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String strDate = sdf.format(getDateAfterMonth(date,number));//的到你想要得6个月后的日期
        return strDate;
    }

    /**
     * 获取number个月后的时间
     * @param date
     * @param number
     * @return
     */
    public static Date  getDateAfterMonth(Date date,int number) {
        Calendar c = Calendar.getInstance();//获得一个日历的实例
        c.setTime(date);//设置日历时间
        c.add(Calendar.MONTH,number);//在日历的月份上增加6个月
        return c.getTime();//的到你想要得6个月后的日期
    }
}
